//********************************对axios的统一封装
//1、导入原生的axios对象
import axios from 'axios'
import qs from 'qs'
//2、导入elementplus的消息提示框
import {ElMessage} from 'element-plus'

//3、设置axios统一的访问后台的地址前缀和响应时长
axios.defaults.baseURL="http://127.0.0.1:8008/"
axios.defaults.timeout=5*1000;//5秒

//4、设置axios请求的拦截器（发起请求，拦截器就会工作）
axios.interceptors.request.use(config=>{
    //对请求的参数做处理。比如对token验证做处理
    if(config.method=="put"){
        config.data = qs.stringify(config.data);
    }
    console.log("token:",localStorage.getItem("token"))
    config.headers.token=localStorage.getItem("token")

    return config;
},error=>{
    ElMessage({message:error,duration:3000,type:'error'});
})

//5、设置axios响应的拦截器（对服务器返回的数据做处理）
//结合后端统一的响应对象
axios.interceptors.response.use(res=>{
    //判断是哪种返回格式
    if(res.data.data){
        //单条数据
        return res.data.data;
    }else if(res.data.list){
        return res.data.list;
    }else{
        if(res.data.code==-1){
            ElMessage({message:res.data.msg,duration:3000,type:'error'});
        }else if(res.data.code==1){
            ElMessage({message:'执行成功',type:'success'})
        }
        return res.data;
    }
    
},error=>{
    console.log('错误：',error);
    return Promise.reject(new Error('我报错了'));
})

//last:导出axios对象
export default axios
